package executor;

import java.lang.reflect.Executable;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;

/**
 * @author tongchen
 * @create 2023-01-20 17:18
 */
public class SService {
    public static void main(String[] args) {
        //1.用来处理大量短时间工作任务的线程池，如果池中没有可用的线程将创建新的线程，线程空闲60s则会被回收
        ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
        //2.创建一个无界队列且固定大小的线程池
        ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3);
        //3.创建一个无界队列且只有一个工作线程的线程池
        ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
        //4.创建一个单线程执行器，可以在给定时间后执行或者定期执行
        ScheduledExecutorService singleScheduleExecutor = Executors.newSingleThreadScheduledExecutor();
        //5.创建一个指定大小的线程池，可以在给定时间后执行或者是定期执行
        ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(3);
        //6.创建一个指定大小的线程池（不指定大小则为当前机器的cpu核心数），并行执行任务，不保证执行顺序
        ExecutorService workStealingPool = Executors.newWorkStealingPool();

    }
}
